package com.gopay.common.constants.txncd;

/**
 * Created by hjy on 14-4-17.
 * 外部交易码   商户交易码
 */
public enum MerTxnCd {

    /** 直接支付  */
    _8888 ("8888"),
    /** 担保支付（部分）完成  */
    _2002 ("2002"),
    /** 担保支付取消  */
    _2003 ("2003"),

    /**G商银通入金（存管）   */
    _GC01 ("GC01"),
    /** G商银通出金（存管）  */
    _GC02 ("GC02"),
    /**  G商银通划拨收益（存管） */
    _GC03 ("GC03"),
    /** G商银通签约（存管）  */
    _GC04 ("GC04"),
    /**  G商银通解约（存管） */
    _GC05 ("GC05"),
    /** G商银通签到（存管）  */
    _GC06 ("GC06"),
    /** G商银通签退（存管）  */
    _GC07 ("GC07"),
    /**  G商银通签约查询（存管） */
    _GC08 ("GC08"),
    /** G商银通监管账户资金查询（存管）  */
    _GC09 ("GC09"),
    /** G商银通交易查询（存管）  */
    _GC10 ("GC10"),
    /** G商融通充值（监管）  */
    _GP01 ("GP01"),

    /** G商融通提现（监管）  */
    _GP02 ("GP02"),

    /** G商融通转账（监管）  */
    _GP03 ("GP03"),

    /**G商融通投标完成（监管）  */
    _GP04 ("GP04"),

    /** G商融通账户绑定（监管）  */
    _GP05 ("GP05"),

    /** G商融通账户解绑（监管）  */
    _GP06 ("GP06"),
    
    /** 付款到银行申请  */
    _4025 ("4025"),

    /** E键支付 付款到银行生成订单  */
    _4026 ("4026"),
    
    /** 内部账户资金划转  */
    _4030 ("4030"),

    /** 批量付款到银行申请  */
    _4035 ("4035"),

	/*
	 * G商融通签约
	 */
	_GS01 ("GS01"),
	/*
	 * G商融通充值
	 */
	_GS02 ("GS02"),
	/*
	 * G商融通提现
	 */
	_GS03 ("GS03"),
	/*
	 * G商融通发标
	 */
	_GS04 ("GS04"),
	/*
	 * G商融通标的更新
	 */
	_GS05 ("GS05"),
	/*
	 * G商融通投标
	 */
	_GS06 ("GS06"),
	/*
	 * G商融通流标
	 */
	_GS07 ("GS07"),
	/*
	 * G商融通放款
	 */
	_GS08 ("GS08"),
	/*
	 * G商融通还款
	 */
	_GS09 ("GS09"),
	/*
	 * G商融通回款
	 */
	_GS10 ("GS10"),
	/*
	 * G商融通转账
	 */
	_GS11 ("GS11"),
	/*
	 * G商融通账户查询
	 */
	_GS12 ("GS12"),
	/*
	 * G商融通业务查询
	 */
	_GS13 ("GS13"),
	/*
	 * G商融通标的查询
	 */
	_GS14 ("GS14"),
	/*
	 * G商融通充提转查询
	 */
	_GS15 ("GS15"),
	/*
	 * G商融通签约查询
	 */
	_GS16 ("GS16"),
	
    /**
     * 快捷API 请求发起
     */
    _8801("8801"),

    /**
     * 快捷API 确认支付
     */
    _8802("8802"),

    /**
     * 代扣API
     */
    _8803("8803"),

    /**
     * 快捷二次支付API 请求发起
     */
    _8805("8805"),
    /**
     * E键支付 请求发起
     */
    _8811("8811"),

    /**
     * 微信支付
     */
    _SC01("SC01"),//支付
    _SC02("SC02"),//刷新二维码
    _SC03("SC03"),//公众号扫码支付
    /**
     * 实名认证API
     */
    _NC01("NC01"),
    /**
     * 银行卡鉴权API
     */
    _5556("5556"),
    /**
     * 云账户 网关支付
     */
    _0600("0600"),
    
    /**
     * 云账户 网关充值
     */
    _0601("0601"),
    
    /**
     * 云账户 网关提现
     */
    _0602("0602"),
    
    /**
     * 云账户 账户锁定/解锁接口
     */
    _0603("0603"),
    
    /**
     * 云账户 冻结/解冻
     */
    _0604("0604"),
    
    /**
     * 云账户 开户
     */
    _0605("0605"),
    
    /**
     * 云账户 用户信息修改
     */
    _0606("0606"),
    
    /**
     * 云账户 绑定银行卡
     */
    _0607("0607"),
    
    /**
     * 云账户 解绑银行卡
     */
    _0608("0608"),
    
    /**
     * 云账户 交易查询
     */
    _0609("0609"),
    
    /**
     * 云账户 余额查询
     */
    _0610("0610"),
    
    /**
     * 云账户 凭证查询
     */
    _0611("0611"),
    
    /**
     * 云账户 转账（解冻转账、转账冻结、转账）
     */
    _0612("0612"),
    
    /**
     * 云账户 B2B转账
     */
    _0613("0613"),
    
    /**
     * 云账户 开户查询
     */
    _0615("0615"),
    
    /**
     * 云账户 银行卡绑定查询
     */
    _0616("0616"),
    /**
     * 云账户 退款
     */
    _0617("0617"),
    /**
     * 云账户 付款到银行
     */
    _0618("0618"),
    /**
     * 云账户 后台开户
     */
    _0619("0619"),
    /**
     * 云账户 卡信息管理
     */
    _0620("0620"),

    /**
     * 云账户 证件上传
     */
    _0621("0621"),

    /**
     * 云账户 对账文件下载
     */
    _0622("0622"),
    /**
     * 云账户子账户收款 add by sh.jiao 20170919
     */
    _0623("0623"),
    /**
     * 云账户免密提现
     */
    _0624("0624"),
    /**
     * 云账户卡bin查询
     */
    _0628("0628"),

    /**
     * 对公鉴权
     */
    _0629("0629"),

    /**
     * 跨境人民币进口
     */
    _7020("7020"),
    
    /**
     * 跨境人民币进口查询
     */
    _7030("7030"),
    /**
     * 跨境人民币进口退货
     */
    _7040("7040"),
    /**
     * 跨境API汇款
     */
    _7024("7024"),
    /**
     * 外卡支付
     */
    _7060("7060"),
    /**
     * 外卡支付运单上传
     */
    _7065("7065"),
    /**
     * 跨境人民币外卡支付退款
     */
    _7070("7070"),
    
    /** 基金账户签约  */
    _8201 ("8201"),

    /** 基金账户解约  */
    _8202 ("8202"),

    /** 基金账户绑卡/解绑  */
    _8203 ("8203"),

    /** 基金账户申购/认购  */
    _8204 ("8204"),

    /** 基金单笔申购/认购交易查询  */
    _8206 ("8206"),

    /** 基金签约查询  */
    _8208 ("8208"),

    /** 基金绑定银行卡查询  */
    _8209 ("8209"),

    /** 基金短信发送  */
    _8210 ("8210"),

    /** 基金公司文件上传通知  */
    _8211 ("8211"),
    
    /** 委托代收鉴权申请  */
    _DS01 ("DS01"),
    
    /** 委托代收鉴权查询  */
    _DS02 ("DS02"),
    
    /** 委托代收授权申请 */
    _DS03 ("DS03"),
    
    /** 委托代收授权确认  */
    _DS04 ("DS04"),
    
    /** 委托代收交易接口  */
    _DS05 ("DS05"),

    /*新增基金签约查询接口*/
    _8212 ("8212"),

    /** 委托代收查询接口  */
    _DS06 ("DS06"),
    /**  翼龙贷懒猫接口  */
    _8889 ("8889"),
    /**  网管银行限额查询接口  */
    _BLQ ("BLQ"),
    /**  三方小额免密支付接口  */
    _MP01 ("MP01"),
    /**  三方小额免密撤销接口  */
    _MP02 ("MP02"),
    /**  三方小额免密查询接口  */
    _MP03 ("MP03"),
    /** 退货 */
    _4010 ("4010"),
    /** 退款转账 */
    _4011 ("4011"),
    /** 收款退款 */
    _4012 ("4012"),
    /**  一码付  */
    _MP04("MP04"),
    /**  直接代收支付  */
    _ZDS1("ZDS1"),
    /***
     * 网关通用分账-分账
     */
    _9000("9000");
    public final String value;

    MerTxnCd(String value) {
        this.value = value;
    }

    @Override
    public String toString() {
        return this.value;
    }

    /**
     * 根据枚举类型的字符串值 获取 相应的枚举变量
     */
    public static MerTxnCd get(String str) {
        MerTxnCd[] cs = MerTxnCd.class.getEnumConstants();
        for (MerTxnCd c : cs) {
            if (c.toString().equals(str)) {
                return c;
            }
        }
        throw new RuntimeException(" wrong " + MerTxnCd.class.getSimpleName() + " string value! " + str);
    }
}
